The present invention relates to telecommunication techniques. More particularly, the present invention provides a technique including methods and systems for managing memory in a TCP over satellite system for use in a wide area network of computers such as the Internet. The present invention provides a controlled memory management in equipment for high speed and quality transmission of signals to a distant location over a satellite system using an Xpress Transport Protocol (herein xe2x80x9cXTPxe2x80x9d) protocol, for example. But it will be recognized that the invention has a much wider range of applicability; it can also be applied to a private bridged network, terrestrial wireless network links, and the like.
The Internet is an international xe2x80x9csuper-networkxe2x80x9d connecting together millions of individual computer networks and computers. The Internet is generally not a single entity. It is an extremely diffuse and complex system over which no single entity has complete authority or control. Although the Internet is widely known for one of its ways of presenting information through the World Wide Web (herein xe2x80x9cWebxe2x80x9d), there are many other services currently available based upon the general Internet protocols and infrastructure.
The Web is generally easy to use for people inexperienced with computers. Information on the Web can be presented on xe2x80x9cpagesxe2x80x9d of graphics and text that contain xe2x80x9clinksxe2x80x9d to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a xe2x80x9cbrowserxe2x80x9d program such as one made by Netscape Communications Corporation of Mountain View, Calif. or Microsoft Corporation of Redmond, Wash. Browser programs process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
The Internet supports many other forms of communication. For example, the Internet allows one-to-one communication via electronic mail, which is commonly known as xe2x80x9ce-mail.xe2x80x9d The Internet also has xe2x80x9cbulletin boardsxe2x80x9d which are used by users to post colorful text and graphics for others to read and respond to. For real time communication, the Internet has xe2x80x9cchat roomsxe2x80x9d and the like, which allow users to communicate to each other by way of typed messages. In some cases, the Internet can also be used for voice communication between users. All of these forms of communication are possible, at least in part, by way of an important connection, which allows information to be transmitted from many different servers on the Internet.
The Internet is based on the TCP/IP protocol suite. At the network layer, an Internet Protocol, which is known as IP, provides a mechanism to deliver packets addressed to individual computers. The Internet has a plurality of computer systems implementing IP, which are generally interconnected to each other using local area networks and dedicated transmission lines, to form a wide area network of computers. IP packets are delivered on a best effort basis and are not guaranteed to arrive at their intended destination, which is known as xe2x80x9cunreliablexe2x80x9d service.
For many applications that require reliable data delivery service, the Internet uses a connection mechanism called Transmission Control Protocol, which is known as TCP. TCP has a variety of desirable characteristics that allows it to be suitable for communication over the Internet. For example, TCP considers the data size or best sized segment of data to send from a transmitting server over the communication medium to a receiving server. Additionally, TCP maintains a timer, which waits for the receiving server to send an acknowledgment of the reception of the data segment from the transmitting server. If the timer times out before the acknowledgment is received, TCP resends the data segment, which provides reliability in the communication. TCP also maintains a checksum on its header and data, which monitors any modification in the data in transit. If the data arrives with an invalid checksum, TCP discards the data and does not acknowledge receiving the data. If data segments arrive out of order, TCP can also recombine the segments in order at the receiving server. Furthermore, TCP provides flow control, which only allows a finite amount of data to be sent to a buffer on the receiving server. This prevents a fast server computer from overflowing all the buffers on a slower server computer.
Although TCP has been well suited for transmitting Internet data between a plurality of servers, which are coupled to each other by way of conventional telephone systems and lines with similar characteristics, TCP has many limitations. For example, TCP is suitable for xe2x80x9cshort hopsxe2x80x9d but often slows down communication over extremely long distances which can have significant latency (e.g., transcontinental hops via satellite). Here, the flow control and acknowledgment features take too long to send and receive, which make communication slow. Additionally, opportunities for gains in efficiency still exist. In particular, high speed transmission of Internet data over a satellite network, for example, to a relatively slower recipient, such as modem, and the like, can cause congestion. Additionally, pathological conditions can arise in networking using satellites, that can cause resource exhaustion in systems, which leads to further slowing of TCP connections.
From the above, it is seen that a more efficient way of managing memory in the transmission of information for Internet services over large geographical regions using a wireless communication media is highly desirable.
According to the present invention, a technique for managing memory for storing information communicated over one or more TCP connections over a wireless wide area network is provided. In an exemplary embodiment, the present invention provides methods and systems for controlling the buffering of information that flows over a TCP connection to an Xpress Transport Protocol (herein xe2x80x9cXTPxe2x80x9d) connection, for example.
In a specific embodiment, the present invention provides a method for managing memory for buffering information communicated over an internet connection established across a satellite link. The method can be operable on a large variety of systems, such as a system comprising one or more clients, one or more servers, a first gateway connected to at least one client, a second gateway connected to at least one server, and a wireless telecommunications link between these gateways. The method includes intercepting a connection attempt with a server initiated by a client. The client will attempt a connection that will have a first characteristic data rate. A connection can be established between a first gateway and a second gateway over the telecommunications link, that can be a satellite link or the like. This connection will have a second characteristic data rate. The first gateway can include a buffer for storing information received over the telecommunications link from the second gateway and a buffer for storing information to be sent to the client. The method can perform a step of determining a state in the receive buffer. The state can indicate whether the characteristic data rate in the telecommunications link is substantially greater than the characteristic data rate for the client. A step of setting a receive window size for the client at the first gateway to reduce an amount of data received over the telecommunications link for the client can also be part of the method. The combination of these steps can provide a method for managing memory for buffering information coming from the telecommunications link in the first gateway.
In another aspect of the present invention, a system for controlling the flow of information over a satellite is provided. The system can include at least one client, selected from a plurality of potential clients and at least one server, selected from a plurality of potential servers. The system can also include a first gateway, connected to the client by a first telecommunications link, and a second gateway, connected to the server by a second telecommunications link. A third telecommunications link connecting the first gateway to the second gateway can also be part of the system. The system is operative to intercept a connection attempt with the server initiated by the client at a first characteristic data rate. The system can then establish a connection between the first gateway and the second gateway over the third telecommunications link. This connection will have a second characteristic data rate. The first buffer stores information received over the third telecommunications link and the second buffer stores information to be sent to the client. The system can determine a state in the first buffer. The state indicates that the second characteristic data rate in the third telecommunications link is greater than the first characteristic data rate for the client. The system can also set a receive window size for the client at the first gateway to reduce an amount of data received over the third telecommunications link for the client.
In a yet further aspect according to the present invention, a computer program product for controlling the flow of information over a wireless data link is provided. The data link can comprise one or more connections. The computer program product comprises a computer readable storage medium for holding a plurality of code. Code for intercepting a connection attempt with a server initiated by a client at a first characteristic data rate is included in the program product. Further, code for establishing a connection between a first gateway and a second gateway over a telecommunications link at a second characteristic data rate is also included. A first buffer in the first gateway stores information received over the telecommunications link and a second buffer stores information to be sent to the client. The product can also include code for determining a state in the first buffer. The state indicates a condition where the characteristic data rate of the telecommunications link is substantially greater than that of the client. If this condition is detected, then the product invokes code for setting a receive window size for the client at the first gateway to reduce an amount of data received over the telecommunications link for the client.
Numerous benefits are achieved by way of the present invention over conventional techniques. In a specific embodiment, the techniques according to the present invention can quickly resize the receive window to achieve a match between the data rate of a sender and the data rate of a receiver of a TCP connection over a satellite link. In some embodiments, the techniques of the present invention can be applied to each satellite connection separately, so that one slow receiver will not degrade performance of other connections over the same link. In many embodiments, the present invention provides for a management of buffer memory in a novel protocol which is suitable for long latency, high loss, asymmetric bandwidth conditions, which are typical of satellite communications. The present invention also provides for relatively easy implementation into a conventional satellite system. Depending upon the embodiment, one or more of these benefits can be present. These and other advantages or benefits are described throughout the present specification and are described more particularly below.
These and other embodiments of the present invention are described in more detail in conjunction with the text below and attached Figs.